nazo6 notememo

next buildでENAMETOOLONGが出たとき

作成:2024/03/24

更新:2024/03/24

generateStaticParams周りで起きやすい。
これが出る時は恐らくパスをencodeURIしているはず。というかnext devではencodeURIしないとそんなパスねーぞと怒られる。
しかしいざnext buildするとENAMETOOLONGのエラーがでる。一体どうしろという感じだがnext build時はnextjsがパスを見つけられなくても怒られないので以下のようなコードで対応
const paths = ["とても/長い/パス", ...];

export async function generateStaticParams() {
if (process.env.NODE_ENV === "production") {
return paths.map((p) => ({
path: p,
}));
}
return paths.map((p) => ({
path: p.map(encodeURI),
}));
}
要するにnext buildnext devで出し分けているだけ